package com.platform.service;

import com.platform.domain.TbSysUser;
import com.platform.domain.TbSysUserAuthorization;
import com.platform.domain.query.TbSysUserQuery;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: wangyanginfo
 * Date: 12-8-29
 * Time: 下午7:08
 * To change this template use File | Settings | File Templates.
 */
public interface UserService {

    /**
     * 根据用户登录名查询用户信息
     *
     * @param loginId 登录名
     * @return 用户信息
     * @throws Exception
     */
    public TbSysUser queryUserByLoginId(String loginId) throws Exception;

    /**
     * 根据用户对象条件查询符合条件的用户记录总条数
     *
     * @param user 用户对象
     * @return 记录总条数
     * @throws Exception
     */
    public int queryUserInfosCount(TbSysUserQuery user) throws Exception;

    /**
     * 根据查询条件查询满足条件的用户信息集合(包括部门中文、职位中文、角色ID、角色中文)
     *
     * @param user 用户查询条件
     * @return 用户查询条件
     * @throws Exception
     */
    public List<TbSysUser> queryUserInfos(TbSysUserQuery user) throws Exception;

    /**
     * 根据用户ID查询用户信息
     * @param userId 用户ID
     * @return 用户信息
     * @throws Exception
     */
    public TbSysUser queryUser(String userId) throws Exception;

    /**
     * 插入用户信息
     * @param user 用户信息
     * @return 执行结果
     * @throws Exception
     */
    public int insertUser(TbSysUser user) throws Exception;

    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 执行结果
     * @throws Exception
     */
    public int updateUser(TbSysUser user) throws Exception;

    /**
     * 根据用户ID删除用户信息
     * @param userId 用户ID
     * @return 执行结果
     * @throws Exception
     */
    public int deleteUser(String userId) throws Exception;

    /**
     * 保存用户ID授权信息
     * @param userAuths
     * @return
     * @throws Exception
     */
    public int saveUserRoles(List<TbSysUserAuthorization> userAuths) throws Exception;
}
